entity MaskSave is

	port (
		entradaReg : in bit_vector(31 downto 0);
		entradaMem : in bit_vector(31 downto 0);
		saida : out bit_vector(31 downto 0);
		seletor : in bit_vector(1 downto 0)
	);
end MaskSave;

architecture arc_saves of MaskSave is

begin

	process (entradaReg, entradaMem, seletor)
		variable resultado : bit_vector(31 downto 0);
		
		begin
			if(seletor = "10") then  --lb
				resultado(7 downto 0) := entradaReg(7 downto 0);
				resultado(31 downto 8) := entradaMem(31 downto 8);			
			elsif(seletor = "01") then  --lh
				resultado(15 downto 0) := entradaReg(15 downto 0);
				resultado(31 downto 16) := entradaMem(31 downto 16);
			else
				resultado := entradaReg;
			end if;
			saida <= resultado;
	end process;
	
end arc_saves;